Ana içeriğe geç

İşlem düzeni

bilgi

Bu sayfayı daha iyi anlamanızı sağlamak için TL-B dili ile tanışmanız önerilir.

TON Blockchain, üç ana bileşen etrafında çalışır: hesaplar, mesajlar ve işlemler. Bu sayfa, işlemlerin yapısını ve düzenini açıklar.

Bir işlem, belirli bir hesaba ait içeriye ve dışarıya mesajları işleyen bir operasyon olup, hesabın durumunu değiştirebilir ve doğrulayıcılar için ücretler oluşturabilir.

İşlem

transaction$0111 account_addr:bits256 lt:uint64
prev_trans_hash:bits256 prev_trans_lt:uint64 now:uint32
outmsg_cnt:uint15
orig_status:AccountStatus end_status:AccountStatus
^[ in_msg:(Maybe ^(Message Any)) out_msgs:(HashmapE 15 ^(Message Any)) ]
total_fees:CurrencyCollection state_update:^(HASH_UPDATE Account)
description:^TransactionDescr = Transaction;
AlanTürGerekliAçıklama
account_addrbits256Evetİşlemin gerçekleştirildiği adresin hash kısmı. Adresler hakkında daha fazla bilgi
ltuint64EvetMantıksal zamanı temsil eder. Mantıksal zaman hakkında daha fazla bilgi
prev_trans_hashbits256EvetBu hesap üzerindeki bir önceki işlemin hash'i.
prev_trans_ltuint64EvetBu hesap üzerindeki bir önceki işlemin ltsi.
nowuint32EvetBu işlemi gerçekleştirirken ayarlanan now değeri. Bir Unix zaman damgasıdır, saniye cinsindendir.
outmsg_cntuint15EvetBu işlem gerçekleştirilirken oluşturulan giden mesajların sayısı.
orig_statusAccountStatusEvetİşlem gerçekleştirilmeden önce bu hesabın durumu.
end_statusAccountStatusEvetİşlemi gerçekleştirdikten sonraki bu hesabın durumu.
in_msg(Message Any)Hayırİşlemi başlatan gelen mesaj. Bir referansta saklanır.
out_msgsHashmapE 15 ^(Message Any)EvetBu işlem gerçekleştirilirken oluşturulan giden mesajların listesini içeren sözlük.
total_feesCurrencyCollectionEvetBu işlem gerçekleştirilirken toplanan toplam ücretler. Bir Toncoin değeri içerir ve muhtemelen bazı Extra-currencyler barındırabilir.
state_updateHASH_UPDATE AccountEvetHASH_UPDATE yapısı. Bir referansta saklanır.
descriptionTransactionDescrEvetİşlem yürütme sürecine dair detaylı bir açıklama. Bir referansta saklanır.

AccountStatus

acc_state_uninit$00 = AccountStatus;
acc_state_frozen$01 = AccountStatus;
acc_state_active$10 = AccountStatus;
acc_state_nonexist$11 = AccountStatus;
  • [00]: Hesap başlatılmamış
  • [01]: Hesap duraklatılmış
  • [10]: Hesap aktif
  • [11]: Hesap mevcut değil

HASH_UPDATE

update_hashes#72 {X:Type} old_hash:bits256 new_hash:bits256
= HASH_UPDATE X;
AlanTürAçıklama
old_hashbits256İşlem gerçekleştirilmeden önceki hesap durumunun hash'i.
new_hashbits256İşlem gerçekleştirildikten sonraki hesap durumunun hash'i.

TransactionDescr Türleri

  • Sıradan
  • Depolama
  • Tick-tock
  • Bölü hazırlama
  • Bölü kurulum
  • Birleştirme hazırlama
  • Birleştirme kurulum

Sıradan

Bu, en yaygın işlem türüdür ve çoğu geliştiricinin ihtiyaçlarını karşılar. Bu tür işlemlerin kesin bir iç mesajı vardır ve birkaç dış mesaj oluşturabilir.

trans_ord$0000 credit_first:Bool
storage_ph:(Maybe TrStoragePhase)
credit_ph:(Maybe TrCreditPhase)
compute_ph:TrComputePhase action:(Maybe ^TrActionPhase)
aborted:Bool bounce:(Maybe TrBouncePhase)
destroyed:Bool
= TransactionDescr;
AlanTürGerekliAçıklama
credit_firstBoolEvetGelen bir mesajın bounce bayrağı ile ilişkili bir bayrak. credit_first = !bounce
storage_phTrStoragePhaseHayırİşlem yürütme depolama aşamasına dair bilgileri içerir. Daha fazla bilgi
credit_phTrCreditPhaseHayırİşlem yürütme kredi aşamasına dair bilgileri içerir. Daha fazla bilgi
compute_phTrComputePhaseEvetİşlem yürütme hesaplama aşamasına dair bilgileri içerir. Daha fazla bilgi
actionTrActionPhaseHayırİşlem yürütme eylem aşamasına dair bilgileri içerir. Daha fazla bilgi. Bir referansta saklanır.
abortedBoolEvetİşlem yürütmesinin iptal edilip edilmediğini gösterir.
bounceTrBouncePhaseHayırİşlem yürütme sırasındaki atlama aşamasına dair bilgileri içerir. Daha fazla bilgi
destroyedBoolEvetİşlem sırasında hesabın yok edilip edilmediğini gösterir.

Depolama

Bu tür işlemler, doğrulayıcılar tarafından kendi takdirlerine bağlı olarak eklenebilir. Hiçbir gelen mesajı işleme almazlar ve herhangi bir kodu çağırmazlar. Tek etkileri, bir hesaptan depolama ödemelerini toplamaktır; bu da depolama istatistiklerini ve bakiyesini etkiler. Hesabın oluşan Toncoin bakiyesi belirli bir miktarın altına düşerse, hesap duraklatılabilir ve kodu ile verileri birleşik hash'leri ile değiştirilebilir.

trans_storage$0001 storage_ph:TrStoragePhase
= TransactionDescr;
AlanTürAçıklama
storage_phTrStoragePhaseİşlem yürütme depolama aşamasına dair bilgileri içerir. Daha fazla bilgi

Tick-tock

Tick ve Tock işlemleri, her blokta otomatik olarak çağrılması gereken özel sistem akıllı sözleşmeleri için ayrılmıştır. Tick işlemleri, her ana zincir bloğunun başında, Tock işlemleri ise sonunda çağrılır.

trans_tick_tock$001 is_tock:Bool storage_ph:TrStoragePhase
compute_ph:TrComputePhase action:(Maybe ^TrActionPhase)
aborted:Bool destroyed:Bool = TransactionDescr;
AlanTürGerekliAçıklama
is_tockBoolEvetİşlem türünü belirten bir bayrak. Tick ve Tock işlemlerini ayırmada kullanılır.
storage_phTrStoragePhaseEvetİşlem yürütme depolama aşamasına dair bilgileri içerir. Daha fazla bilgi
compute_phTrComputePhaseEvetİşlem yürütme hesaplama aşamasına dair bilgileri içerir. Daha fazla bilgi
actionTrActionPhaseHayırİşlem yürütme eylem aşamasına dair bilgileri içerir. Daha fazla bilgi. Bir referansta saklanır.
abortedBoolEvetİşlem yürütmesinin iptal edilip edilmediğini gösterir.
destroyedBoolEvetİşlem sırasında hesabın yok edilip edilmediğini gösterir.

Bölü Hazırlama

not

Bu işlem türü şu anda kullanılmamaktadır. Bu süreç hakkında bilgi sınırlıdır.

Bölme işlemleri, yüksek yük altında bölünmesi gereken büyük akıllı sözleşmelerde başlatılır. Sözleşme, bu işlem türünü desteklemeli ve yükü dengeleyecek şekilde bölme sürecini yönetmelidir.

Bölü hazırlama işlemleri, bir akıllı sözleşmenin bölünmesi gerektiğinde başlatılır. Akıllı sözleşme, kendisinin yeni bir örneği için dağıtılmak üzere durum oluşturmalıdır.

trans_split_prepare$0100 split_info:SplitMergeInfo
storage_ph:(Maybe TrStoragePhase)
compute_ph:TrComputePhase action:(Maybe ^TrActionPhase)
aborted:Bool destroyed:Bool
= TransactionDescr;
AlanTürGerekliAçıklama
split_infoSplitMergeInfoEvetBölme süreci hakkında bilgi.
storage_phTrStoragePhaseHayırİşlem yürütme depolama aşamasına dair bilgileri içerir. Daha fazla bilgi
compute_phTrComputePhaseEvetİşlem yürütme hesaplama aşamasına dair bilgileri içerir. Daha fazla bilgi
actionTrActionPhaseHayırİşlem yürütme eylem aşamasına dair bilgileri içerir. Daha fazla bilgi. Bir referansta saklanır.
abortedBoolEvetİşlem yürütmesinin iptal edilip edilmediğini gösterir.
destroyedBoolEvetİşlem sırasında hesabın yok edilip edilmediğini gösterir.

Bölü Kurulum

not

Bu işlem türü şu anda kullanılmamaktadır. Bu süreç hakkında bilgi sınırlıdır.

Bölü kurulum işlemleri, yeni büyük akıllı sözleşme örnekleri oluşturmak için kullanılır. Yeni akıllı sözleşmenin durumu, bir Bölü Hazırlama işlemi tarafından üretilir.

trans_split_install$0101 split_info:SplitMergeInfo
prepare_transaction:^Transaction
installed:Bool = TransactionDescr;
AlanTürAçıklama
split_infoSplitMergeInfoBölme süreci hakkında bilgi.
prepare_transactionTransactionBölme işlemi için hazırlanan işlem hakkında bilgi. Bir referansta saklanır.
installedBoolİşlemin kurulup kurulmadığını gösterir.

Birleştirme Hazırlama

not

Bu işlem türü şu anda kullanılmamaktadır. Bu süreç hakkında bilgi sınırlıdır.

Birleştirme işlemleri, yüksek yük nedeniyle bölünen büyük akıllı sözleşmelerin yeniden birleştirilmesi gerektiğinde başlatılır. Sözleşme, bu işlem türünü desteklemeli ve yükü dengelemek için birleştirme sürecini yönetmelidir.

Birleştirme hazırlama işlemleri, iki akıllı sözleşmenin birleştirilmesi gerektiğinde başlatılır. Akıllı sözleşme, birleştirmeyi kolaylaştırmak için kendisinin başka bir örneği için bir mesaj üretmelidir.

trans_merge_prepare$0110 split_info:SplitMergeInfo
storage_ph:TrStoragePhase aborted:Bool
= TransactionDescr;
AlanTürAçıklama
split_infoSplitMergeInfoBirleştirme süreci hakkında bilgi.
storage_phTrStoragePhaseİşlem yürütme depolama aşamasına dair bilgileri içerir. Daha fazla bilgi
abortedBoolİşlem yürütmesinin iptal edilip edilmediğini gösterir.

Merge yükle

not

Bu tür bir işlem şu anda kullanılmamaktadır. Bu süreç hakkında bilgi sınırlıdır.

Merge Yükleme işlemleri, büyük akıllı sözleşmelerin örneklerini birleştirmek için kullanılır. Birleştirmeyi kolaylaştıran özel mesaj, bir Merge Prepare işlemi tarafından üretilir.

trans_merge_install$0111 split_info:SplitMergeInfo
prepare_transaction:^Transaction
storage_ph:(Maybe TrStoragePhase)
credit_ph:(Maybe TrCreditPhase)
compute_ph:TrComputePhase action:(Maybe ^TrActionPhase)
aborted:Bool destroyed:Bool
= TransactionDescr;
AlanTürGerekenAçıklama
split_infoSplitMergeInfoEvetBirleştirme süreci hakkında bilgi.
prepare_transactionTransactionEvetBirleştirme işlemi için hazırlanan işlem hakkında bilgi. Referansta saklanır.

| storage_ph | TrStoragePhase | Hayır | Bir işlem yürütmenin depolama aşaması hakkında bilgi içerir. Daha Fazla Bilgi | | credit_ph | TrCreditPhase | Hayır | Bir işlem yürütmenin kredi aşaması hakkında bilgi içerir. Daha Fazla Bilgi | | compute_ph | TrComputePhase | Evet | Bir işlem yürütmenin hesaplama aşaması hakkında bilgi içerir. Daha Fazla Bilgi | | action | TrActionPhase | Hayır | Bir işlem yürütmenin eylem aşaması hakkında bilgi içerir. Daha Fazla Bilgi. Referansta saklanır. | | aborted | Bool | Evet | İşlem yürütmenin iptal edilip edilmediğini belirtir. | | destroyed | Bool | Evet | İşlem sırasında hesabın yok edilip edilmediğini belirtir. |

Ayrıca bakınız

  • Orijinal İşlem düzeni tarifine dair açıklama beyaz kitapta bulunabilir.
ipucu

Birleştirme işlemleri sırasında dikkat edilmesi gereken en önemli noktalardan biri, işlemlerin başarılı bir şekilde tamamlandığından emin olmaktır.

bilgi

Bu işlemler, akıllı sözleşmelere olan güvenliği artırmak için kritik öneme sahiptir.

tehlike

Eğer birleştirme süreci sırasında bir hata oluşursa, bu yanıtı etkileyebilir. Lütfen süreci dikkatlice izleyin.

:::quote "Her bir işlem, akıllı sözleşme ağı içinde ayrı bir kriterle değerlendirilmelidir."
— Akıllı Sözleşme Uzmanı :::

Daha Fazla Bilgi için tıklayın

İşlem ve Aşamaları

Bir süreç hakkında daha fazla bilgi edinmek için, yukarıda belirtilen bağlantılara göz atabilirsiniz. Bu kaynaklar, işlemlerin nasıl yürütüldüğü hakkında derinlemesine ipuçları sunmaktadır.